0 CLR 4 REM COPYRIGHT 1991 - COMPUTE PUBLICATIONS INTL LTD - ALL RIGHTS RESERVED 5 REM BY HENNING VAHLENKAMP 10 REM***SET-UP*** 20 IF PEEK(65534)=23 AND PEEK(215)=128 THEN40 30 POKE53280,6:POKE53281,6:XX=3:TX=4:GOTO60 40 POKE53265,11:POKE53296,1:SYS52684,3,26 50 XX=23:XX$="":TX=24 60 DN=8:T=18:OPEN1,DN,15 70 PRINT#1,"M-R"CHR$(198)CHR$(229)CHR$(1) 80 GET#1,BY$:IF ASC(BY$)=255 THEN T=40:FL=1 90 CLOSE1:DIM C$(16),T$(13),M$(15) 100 FOR L=1 TO 32 110 HB$=HB$+CHR$(192):S$=S$+" ":NEXT 120 FOR L=. TO 10:READ CH$(L),LL(L):NEXT 130 FOR L=. TO 16:READ C$(L):NEXT 140 FOR L=. TO 2:READ Q$(L):NEXT 150 FOR L=1 TO 15:READ M$(L):NEXT 160 H$="[221]":Z$=CHR$(.):SS$=CHR$(160):HM$="" 170 RT$="":DN$="":RS$="" 180 FOR L=1 TO XX:R$=R$+RT$:NEXT 190 FOR L=1 TO 21:DM$=DM$+DN$:NEXT 200 FOR L=. TO 5 210 RT$=RT$+RT$+XX$:DN$=DN$+DN$:NEXT 220 DN$=HM$+DN$:HX$="0123456789ABCDEF" 230 REM***SCREEN*** 240 PRINTCHR$(14)"[147]"R$"[176]"HB$"[174]" 250 PRINTR$H$"**"H$" "M$(1)" "H$"**"H$ 260 PRINTR$"[171]"HB$"[179]" 270 FOR L=1 TO 10:PRINTR$H$S$H$:NEXT 280 PRINTR$H$LEFT$(S$,9)LEFT$(HB$,23)"[179]" 290 FOR L=1 TO 4 300 PRINTR$H$"[155][204]"CHR$(L+48)""H$LEFT$(S$,29)H$:NEXT 310 PRINTR$"[173][192][192][177]"LEFT$(HB$,29)"[189]" 320 PRINTR$"[192]"HB$"[192]":PRINT:PRINTR$"[192]"HB$"[192]" 330 PRINTR$"[155]"M$(2):PRINTR$M$(3); 340 REM***MAIN*** 350 PRINTHM$LEFT$(DN$,5); 360 FOR L=. TO 10 370 PRINTLEFT$(RT$,TX)"[155]"CH$(L)"":NEXT 380 GOSUB1550 390 PRINTLEFT$(DN$,MC+5)LEFT$(RT$,TX)"[155]"RS$LEFT$(CH$(MC),LEN(CH$(MC))-1)"" 400 GET K$:IF K$="" THEN400 410 IF K$=CHR$(13) THEN530 420 IF K$="D" THEN740 430 IF K$="C" THEN860 440 IF K$="R" THEN920 450 IF K$="W" THEN1630 460 IF K$="P" THEN1970 470 IF K$="Q" THEN2370 480 IF K$="" THEN MC=MC+1:IF MC>10 THEN MC=. 490 IF K$="[145]" THEN MC=MC-1:IF MC<. THEN MC=10 500 PRINTLEFT$(DN$,M2+5)LEFT$(RT$,TX)"[155]"LEFT$(CH$(M2),LEN(CH$(M2))-1)"" 510 M2=MC:GOTO390 520 REM***CHANGE*** 530 TM$=T$(MC):GOSUB2190 540 IF T$(.)="" THEN PRINTM$(8):GOSUB2210:GOSUB2200:GOTO400 550 IF MC<>2 AND MC<>4 AND MC<>5 THEN LN=LL(MC):GOSUB2060 560 ON MC+1 GOTO570,570,580,570,580,580,590,570,620,650,680 570 T$(MC)=TX$:GOTO710 580 PRINTM$(9):GOSUB2210:GOSUB2200:GOTO400 590 MM=VAL(MID$(TX$,1,2)):DD=VAL(MID$(TX$,3,2)):YY=VAL(MID$(TX$,5,2)) 600 HH=VAL(MID$(TX$,7,2)):NN=VAL(MID$(TX$,9,2)) 610 FG=1:GOSUB1340:GOTO710 620 IF TX$="Y" THEN T$(8)="YES":WP=WP OR 64 630 IF TX$="N" THEN T$(8)="NO":WP=WP AND 191 640 GOTO710 650 AD$=TX$:T$(9)="":Q=1:FOR L=. TO 2 660 T$(9)=T$(9)+Q$(L)+MID$(TX$,Q,4) 670 Q=Q+4:NEXT:GOTO710 680 X=VAL(TX$):IF X<1 OR X>4 THEN400 690 LN=29:IF X=4 THEN LN=8 700 GOSUB2060:T$(9+X)=TX$:GOTO350 710 IF TX$="" THEN T$(MC)=TM$:GOTO400 720 GOTO350 730 REM***DIRECTORY*** 740 PRINT"[147]":X=11:Y=12 750 OPEN1,DN,.,"$0":GET#1,V1$ 760 GET#1,V1$,V1$,V1$,V1$,V2$,V3$ 770 PRINTASC(V1$+Z$)+ASC(V2$+Z$)*256V3$; 780 FOR L=. TO X 790 GET#1,V1$,V2$:PRINTV1$V2$;:NEXT 800 GET K$:IF K$="Q" THEN830 810 IF K$<>"" THEN GOSUB2210 820 PRINT:IF V2$<>"" THEN X=Y:GOTO760 830 CLOSE1 840 PRINT:PRINT M$(10):GOSUB2210:GOTO240 850 REM***DISK COMMAND*** 860 LN=33:GOSUB2060:IF TX$="" THEN900 870 OPEN1,DN,15:PRINT#1,TX$ 880 INPUT#1,EN,EM$,ET,ES:GOSUB2190 890 PRINTEN;EM$;ET;ES:GOSUB2210 900 CLOSE1:GOSUB2200:GOTO400 910 REM***READ & DECODE*** 920 FI$="":LN=16:S=1:IF FL THEN S=3 930 GOSUB2060:IF TX$="" THEN400 940 GOSUB2190:PRINTM$(6) 950 OPEN1,DN,15,"I0":OPEN2,DN,2,"#" 960 PRINT#1,"U1";2;.;T;S 970 GET#2,TR$,SE$:TR$=TR$+Z$:SE$=SE$+Z$ 980 FOR VL=5 TO 244 STEP 32 990 PRINT#1,"B-P";2;VL 1000 FOR I=1 TO 16:GET#2,BY$ 1010 IF BY$=SS$ THEN1030 1020 FI$=FI$+BY$:NEXT I 1030 IF FI$=TX$ THEN1080 1040 FI$="":NEXT VL 1050 IF ASC(TR$)<>. THEN S=ASC(SE$):GOTO960 1060 GOSUB2200:GOSUB2190:PRINTM$(5) 1070 GOSUB2210:GOTO1530 1080 ZZ$=S1$:S1$="":PRINT#1,"B-P";2;VL-3 1090 FOR L=1 TO 30 1100 GET#2,BY$:IF BY$="" THEN BY$=Z$ 1110 IF L=20 AND BY$=Z$ THEN S1$=ZZ$:GOSUB2190:PRINTM$(15):GOSUB2210:GOTO1530 1120 S1$=S1$+BY$:NEXT 1130 S2$="":AD$="":SS=S 1140 FOR L=. TO 13:T$(L)="":NEXT 1150 KK=144:IF FL THEN KK=4 1160 PRINT#1,"U1";2;.;T;.:PRINT#1,"B-P";2;KK 1170 FOR L=1 TO 16 1180 GET#2,BY$:IF BY$=SS$ THEN1200 1190 T$(1)=T$(1)+BY$:NEXT 1200 TK=ASC(MID$(S1$,20,1)):SK=ASC(MID$(S1$,21,1)) 1210 PRINT#1,"U1";2;.;TK;SK 1220 PRINT#1,"B-P";2;68 1230 FOR L=1 TO 187:GET#2,BY$:IF BY$="" THEN BY$=Z$ 1240 S2$=S2$+BY$:NEXT:CLOSE2:CLOSE1 1250 T$(.)=TX$:T$(2)=C$(ASC(MID$(S1$,23,1))) 1260 FOR L=10 TO 27 1270 BY$=MID$(S2$,L,1):IF BY$=Z$ THEN1290 1280 T$(3)=T$(3)+BY$:NEXT 1290 T$(4)=C$(ASC(MID$(S1$,22,1))+15) 1300 X=ASC(MID$(S1$,29,1))+ASC(MID$(S1$,30,1))*256 1310 T$(5)=STR$(INT(X/4))+"K "+STR$(X)+" BLOCKS" 1320 MM=ASC(MID$(S1$,25,1)):DD=ASC(MID$(S1$,26,1)):YY=ASC(MID$(S1$,24,1)) 1330 HH=ASC(MID$(S1$,27,1)):NN=ASC(MID$(S1$,28,1)) 1340 T$(6)=STR$(MM)+"/"+STR$(DD)+"/"+STR$(YY) 1350 X$=STR$(NN):IF LEN(X$)=2 THEN X$=" 0"+RIGHT$(X$,1) 1360 T$(6)=T$(6)+" "+STR$(HH)+":"+X$ 1370 IF FG THEN FG=.:RETURN 1380 FOR L=30 TO 47 1390 BY$=MID$(S2$,L,1):IF BY$=Z$ THEN1410 1400 T$(7)=T$(7)+BY$:NEXT 1410 WP=ASC(LEFT$(S1$,1)) 1420 IF WP>133 THEN T$(8)="YES":GOTO1440 1430 T$(8)="NO" 1440 Q=2:FOR L=2 TO 6 STEP 2 1450 X=ASC(MID$(S2$,L+2,1))+ASC(MID$(S2$,L+3,1))*256 1460 GOSUB2240:AD$=AD$+A$:T$(9)=T$(9)+Q$(L-Q)+A$ 1470 Q=Q+1:NEXT 1480 X=93:FOR I=10 TO 13 1490 FOR L=X TO X+28 1500 BY$=MID$(S2$,L,1):IF BY$=Z$ THEN1530 1510 T$(I)=T$(I)+BY$ 1520 NEXT L:X=X+29:NEXT I 1530 CLOSE2:CLOSE1:GOSUB2200:GOTO380 1540 REM***UPDATE SCREEN*** 1550 PRINTHM$"" 1560 FOR L=. TO 9 1570 PRINTTAB(TX+10)T$(L)LEFT$(S$,21-LEN(T$(L))) 1580 NEXT:PRINT 1590 FOR L=10 TO 13 1600 PRINTTAB(TX+3)T$(L)LEFT$(S$,29-LEN(T$(L))) 1610 NEXT:RETURN 1620 REM***ENCODE & WRITE*** 1630 GOSUB2190:IF T$(.)="" THEN PRINTM$(12):GOSUB2210:GOSUB2200:GOTO400 1640 PRINTM$(13):GOSUB2210 1650 IF K$<>"Y" THEN1950 1660 GOSUB2190:PRINT M$(7):FOR L=. TO 5:TT$(L)="":NEXT 1670 FOR I=. TO 1 1680 X=LEN(T$(I)):TT$(I)=T$(I) 1690 IF X<16 THEN FOR J=1 TO 16-X:TT$(I)=TT$(I)+SS$:NEXT J 1700 NEXT I 1710 L=2:FOR I=3 TO 7 STEP 4 1720 X=LEN(T$(I)):TT$(L)=T$(I) 1730 IF X<18 THEN FOR J=1 TO 18-X:TT$(L)=TT$(L)+Z$:NEXT J 1740 L=3:NEXT I 1750 DT$=CHR$(YY)+CHR$(MM)+CHR$(DD)+CHR$(HH)+CHR$(NN) 1760 FOR L=1 TO 9 STEP 4 1770 X$=MID$(AD$,L,4):GOSUB2290 1780 HI=INT(X/256):LO=X-HI*256 1790 TT$(4)=TT$(4)+CHR$(LO)+CHR$(HI):NEXT 1800 FOR L=10 TO 13:TT$(5)=TT$(5)+T$(L):NEXT 1810 X=LEN(TT$(5)) 1820 IF X<95 THEN FOR L=1 TO 95-X:TT$(5)=TT$(5)+Z$:NEXT 1830 S1$=CHR$(WP)+MID$(S1$,2,2)+TT$(.)+MID$(S1$,20,4)+DT$+MID$(S1$,29,2) 1840 TM$=CHR$(WP)+MID$(S2$,2,2)+TT$(4)+TT$(2)+MID$(S1$,28,2) 1850 S2$=TM$+TT$(3)+MID$(S2$,48,45)+TT$(5) 1860 OPEN1,DN,15,"I0":OPEN2,DN,2,"#" 1870 PRINT#1,"U1";2;.;T;SS:PRINT#1,"B-P";2;VL-3 1880 PRINT#2,S1$;:PRINT#1,"U2";2;.;T;SS 1890 CLOSE2:CLOSE1:OPEN1,DN,15,"I0":OPEN2,DN,2,"#" 1900 PRINT#1,"U1";2;.;T;.:PRINT#1,"B-P";2;KK 1910 PRINT#2,TT$(1);:PRINT#1,"U2";2;.;T;. 1920 CLOSE2:CLOSE1:OPEN1,DN,15,"I0":OPEN2,DN,2,"#" 1930 PRINT#1,"U1";2;.;TK;SK:PRINT#1,"B-P";2;68 1940 PRINT#2,S2$;:PRINT#1,"U2";2;.;TK;SK 1950 CLOSE2:CLOSE1:GOSUB2200:GOTO400 1960 REM***PRINTER DUMP*** 1970 GOSUB2190 1980 IF T$(.)="" THEN PRINTM$(11):GOSUB2210:GOTO2040 1990 OPEN4,4,7:CLOSE4:IF ST<>0 THEN PRINTM$(14):GOSUB2210:GOTO2040 2000 PRINTM$(4):OPEN4,4,7 2010 FOR L=. TO 9:PRINT#4,CH$(L)T$(L):NEXT 2020 PRINT#4:FOR L=10 TO 13 2030 PRINT#4,"[204]"CHR$(L+39)":"T$(L):NEXT:CLOSE4 2040 GOSUB2200:GOTO400 2050 REM***COMMAND LINE*** 2060 TX$="":GOSUB2190 2070 GET K$:V=ASC(K$+Z$) 2080 IF (V>31 AND V<96) OR (V>192 AND V<219) OR V=20 THEN2110 2090 IF V=13 THEN2170 2100 GOTO2070 2110 IF TX$="" AND V=20 THEN2070 2120 IF LEN(TX$)>=LN AND V<>20 THEN2070 2130 PRINTK$; 2140 IF V>192 THEN K$=CHR$(V-96) 2150 IF V<>20 THEN TX$=TX$+K$:GOTO2070 2160 TX$=LEFT$(TX$,LEN(TX$)-1):GOTO2070 2170 GOSUB2200:RETURN 2180 REM***SET, CLEAR, WAIT*** 2190 PRINTHM$DM$R$":";:RETURN 2200 PRINTHM$DM$R$S$" "HM$:RETURN 2210 GET K$:IF K$="" THEN2210 2220 RETURN 2230 REM***DEC-HEX, HEX-DEC*** 2240 A$="":Z=1:FOR I=1 TO 3 2250 V=INT(X/(4096/Z)):A$=A$+MID$(HX$,V+1,1) 2260 X=INT(X-V*(4096/Z)) 2270 Z=Z*16:NEXT 2280 A$=A$+MID$(HX$,X+1,1):RETURN 2290 A$="":X=.:FOR I=1 TO 4 2300 A$=MID$(X$,5-I,1) 2310 FOR J=1 TO 16 2320 IF A$=MID$(HX$,J,1) THEN2340 2330 NEXT J 2340 X=X+(16^(I-1))*(J-1):NEXT I:IF X>65535 THEN X=. 2350 RETURN 2360 REM***QUIT*** 2370 CLOSE2:CLOSE1:PRINT"[147]"CHR$(142):END 2380 DATA" [198]ILENAME:",16," [196]ISK:",16," [212]YPE:",. 2390 DATA" [195]LASS:",18,"[211]TRUCTURE:",.," [211]IZE:",. 2400 DATA" [205]ODIFIED:",10," [193]UTHOR:",18 2410 DATA"[215]RTE [208]TCT:",1," [205]EMORY:",12," [206]OTES:",1 2420 DATA"CBM PRG","[194][193][211][201][195] PRG","[193]SSEMBLY PRG" 2430 DATA"[196]ATA FILE","[211]YSTEM FILE","[196]ESK ACCESSORY" 2440 DATA"[193]PPLICATION","[193]PPLICATION DATA","[198]ONT FILE" 2450 DATA"[208]RINTER DRIVER","[201]NPUT DRIVER","[196]ISK DRIVER" 2460 DATA"[211]YSTEM BOOT FILE","TEMP","[193]UTO-[197]XEC" 2470 DATA"[211]EQUENTIAL","[214][204][201][210]" 2480 DATA"$","-$"," EXA:$" 2490 DATA"-=>GEO[201][206][198][207] [197][196][201][212][207][210]<=-"," D[146]:DIRECTORY C[146]:DISK CMD Q[146]:QUIT" 2500 DATA" R[146]:READ W[146]:WRITE P[146]:PRINT","[208]RINTING..." 2510 DATA"[198]ILE NOT FOUND.","[210]EADING & DECODING...","[197]NCODING & WRITING..." 2520 DATA"[206]O FILE SELECTED.","[212]HIS CAN'T BE CHANGED.","[208]RESS ANY KEY." 2530 DATA"[206]OTHING TO PRINT.","[206]OTHING TO WRITE.","[193]RE YOU SURE (Y/N)?" 2540 DATA"[208]RINTER NOT READY.","[201]NPUT NOT A [199][197][207][211] FILE."